package com.puntodonna.fogliocassa.shared;

import java.io.Serializable;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;


import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Id;
import com.googlecode.objectify.annotation.IgnoreSave;
import com.googlecode.objectify.annotation.Index;


@Entity
public class FoglioCassaObj implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// protected LibroContabile libroContabile;
	@Id
	protected Long id;
	@Index
	protected Key<UserObj> userObjKey;
	@Index
	protected String nome;
	@Index
	protected Date dataApertura;
	@Index
	protected Date dataChiusura;
	@IgnoreSave
	protected Map<Long, MovimentoObj> movimenti = new LinkedHashMap<Long, MovimentoObj>();

	
	public FoglioCassaObj() {

	}

	public Date getDataApertura() {
		return this.dataApertura;
	}

	public Date getDataChiusura() {
		return this.dataChiusura;
	}

	public Map<Long, MovimentoObj> getMovimenti() {
		return movimenti;
	}

	// public LibroContabile getLibroContabile() {
	// return this.libroContabile;
	// }

	public void setDataApertura(Date dataApertura) {
		this.dataApertura = dataApertura;
	}

	public void setDataChiusura(Date dataChiusura) {
		this.dataChiusura = dataChiusura;
	}

	// public void setLibroContabile(LibroContabile libroContabile) {
	// this.libroContabile = libroContabile;
	// }

	public Long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public void setMovimenti(Map<Long, MovimentoObj> movimenti) {
		this.movimenti = movimenti;
	}

	public void add(MovimentoObj movimentoObj) {
		this.movimenti.put(movimentoObj.getId(), movimentoObj);
	}
	
	public Key<UserObj> getUserObjKey() {
		return userObjKey;
	}
	
	public void setUserObjKey(Key<UserObj> userObjKey) {
		this.userObjKey = userObjKey;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getNome() {
		return nome;
	}

}
